{
 "cells": [
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": [
    "# 多模型对比分析（MNIST & CIFAR-10）\n",
    "#本Notebook汇总线性回归、逻辑回归、SVM、决策树、KNN、MLP六种模型在MNIST和CIFAR-10上的表现，并进行可视化对比和分析。"
   ],
   "id": "80239602505f54a8"
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-19T09:18:08.359066Z",
     "start_time": "2025-06-19T09:18:08.356451Z"
    }
   },
   "cell_type": "code",
   "source": [
    "\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n"
   ],
   "id": "e24964beaa459ef2",
   "outputs": [],
   "execution_count": 1
  },
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": "# 汇总各模型实验结果",
   "id": "a408a24192640a95"
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-19T09:18:08.367061Z",
     "start_time": "2025-06-19T09:18:08.364072Z"
    }
   },
   "cell_type": "code",
   "source": [
    "results = {\n",
    "    '线性回归': {'MNIST': 0.219, 'CIFAR-10': 0.132},\n",
    "    '逻辑回归': {'MNIST': 0.874, 'CIFAR-10': 0.274},\n",
    "    'SVM': {'MNIST': 0.886, 'CIFAR-10': 0.374},\n",
    "    '决策树': {'MNIST': 0.748, 'CIFAR-10': 0.233},\n",
    "    'KNN': {'MNIST': 0.816, 'CIFAR-10': 0.236},\n",
    "    'MLP': {'MNIST': 0.896, 'CIFAR-10': 0.354}\n",
    "}"
   ],
   "id": "1fb02e3a9ce4c74f",
   "outputs": [],
   "execution_count": 2
  },
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": [
    "\n",
    "各模型准确率对比可视化"
   ],
   "id": "4b22d2c513bbe65"
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-19T09:18:08.748594Z",
     "start_time": "2025-06-19T09:18:08.585240Z"
    }
   },
   "cell_type": "code",
   "source": [
    "model_names = list(results.keys())\n",
    "acc_mnist = [results[name]['MNIST'] for name in model_names]\n",
    "acc_cifar = [results[name]['CIFAR-10'] for name in model_names]\n",
    "x = np.arange(len(model_names))\n",
    "width = 0.35\n",
    "plt.figure(figsize=(10,6))\n",
    "plt.bar(x-width/2, acc_mnist, width, label='MNIST')\n",
    "plt.bar(x+width/2, acc_cifar, width, label='CIFAR-10')\n",
    "plt.ylabel('Accuracy')\n",
    "plt.title('六种模型在MNIST和CIFAR-10上的准确率对比')\n",
    "plt.xticks(x, model_names, rotation=15)\n",
    "plt.legend()\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ],
   "id": "6127ae0e1047be48",
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Lenovo\\AppData\\Local\\Temp\\ipykernel_28960\\3073683763.py:13: UserWarning: Glyph 32447 (\\N{CJK UNIFIED IDEOGRAPH-7EBF}) missing from font(s) Arial.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\Lenovo\\AppData\\Local\\Temp\\ipykernel_28960\\3073683763.py:13: UserWarning: Glyph 24615 (\\N{CJK UNIFIED IDEOGRAPH-6027}) missing from font(s) Arial.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\Lenovo\\AppData\\Local\\Temp\\ipykernel_28960\\3073683763.py:13: UserWarning: Glyph 22238 (\\N{CJK UNIFIED IDEOGRAPH-56DE}) missing from font(s) Arial.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\Lenovo\\AppData\\Local\\Temp\\ipykernel_28960\\3073683763.py:13: UserWarning: Glyph 24402 (\\N{CJK UNIFIED IDEOGRAPH-5F52}) missing from font(s) Arial.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\Lenovo\\AppData\\Local\\Temp\\ipykernel_28960\\3073683763.py:13: UserWarning: Glyph 36923 (\\N{CJK UNIFIED IDEOGRAPH-903B}) missing from font(s) Arial.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\Lenovo\\AppData\\Local\\Temp\\ipykernel_28960\\3073683763.py:13: UserWarning: Glyph 36753 (\\N{CJK UNIFIED IDEOGRAPH-8F91}) missing from font(s) Arial.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\Lenovo\\AppData\\Local\\Temp\\ipykernel_28960\\3073683763.py:13: UserWarning: Glyph 20915 (\\N{CJK UNIFIED IDEOGRAPH-51B3}) missing from font(s) Arial.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\Lenovo\\AppData\\Local\\Temp\\ipykernel_28960\\3073683763.py:13: UserWarning: Glyph 31574 (\\N{CJK UNIFIED IDEOGRAPH-7B56}) missing from font(s) Arial.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\Lenovo\\AppData\\Local\\Temp\\ipykernel_28960\\3073683763.py:13: UserWarning: Glyph 26641 (\\N{CJK UNIFIED IDEOGRAPH-6811}) missing from font(s) Arial.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\Lenovo\\AppData\\Local\\Temp\\ipykernel_28960\\3073683763.py:13: UserWarning: Glyph 20845 (\\N{CJK UNIFIED IDEOGRAPH-516D}) missing from font(s) Arial.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\Lenovo\\AppData\\Local\\Temp\\ipykernel_28960\\3073683763.py:13: UserWarning: Glyph 31181 (\\N{CJK UNIFIED IDEOGRAPH-79CD}) missing from font(s) Arial.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\Lenovo\\AppData\\Local\\Temp\\ipykernel_28960\\3073683763.py:13: UserWarning: Glyph 27169 (\\N{CJK UNIFIED IDEOGRAPH-6A21}) missing from font(s) Arial.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\Lenovo\\AppData\\Local\\Temp\\ipykernel_28960\\3073683763.py:13: UserWarning: Glyph 22411 (\\N{CJK UNIFIED IDEOGRAPH-578B}) missing from font(s) Arial.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\Lenovo\\AppData\\Local\\Temp\\ipykernel_28960\\3073683763.py:13: UserWarning: Glyph 22312 (\\N{CJK UNIFIED IDEOGRAPH-5728}) missing from font(s) Arial.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\Lenovo\\AppData\\Local\\Temp\\ipykernel_28960\\3073683763.py:13: UserWarning: Glyph 21644 (\\N{CJK UNIFIED IDEOGRAPH-548C}) missing from font(s) Arial.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\Lenovo\\AppData\\Local\\Temp\\ipykernel_28960\\3073683763.py:13: UserWarning: Glyph 19978 (\\N{CJK UNIFIED IDEOGRAPH-4E0A}) missing from font(s) Arial.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\Lenovo\\AppData\\Local\\Temp\\ipykernel_28960\\3073683763.py:13: UserWarning: Glyph 30340 (\\N{CJK UNIFIED IDEOGRAPH-7684}) missing from font(s) Arial.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\Lenovo\\AppData\\Local\\Temp\\ipykernel_28960\\3073683763.py:13: UserWarning: Glyph 20934 (\\N{CJK UNIFIED IDEOGRAPH-51C6}) missing from font(s) Arial.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\Lenovo\\AppData\\Local\\Temp\\ipykernel_28960\\3073683763.py:13: UserWarning: Glyph 30830 (\\N{CJK UNIFIED IDEOGRAPH-786E}) missing from font(s) Arial.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\Lenovo\\AppData\\Local\\Temp\\ipykernel_28960\\3073683763.py:13: UserWarning: Glyph 29575 (\\N{CJK UNIFIED IDEOGRAPH-7387}) missing from font(s) Arial.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\Lenovo\\AppData\\Local\\Temp\\ipykernel_28960\\3073683763.py:13: UserWarning: Glyph 23545 (\\N{CJK UNIFIED IDEOGRAPH-5BF9}) missing from font(s) Arial.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\Lenovo\\AppData\\Local\\Temp\\ipykernel_28960\\3073683763.py:13: UserWarning: Glyph 27604 (\\N{CJK UNIFIED IDEOGRAPH-6BD4}) missing from font(s) Arial.\n",
      "  plt.tight_layout()\n",
      "D:\\python\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 32447 (\\N{CJK UNIFIED IDEOGRAPH-7EBF}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\python\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 24615 (\\N{CJK UNIFIED IDEOGRAPH-6027}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\python\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 22238 (\\N{CJK UNIFIED IDEOGRAPH-56DE}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\python\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 24402 (\\N{CJK UNIFIED IDEOGRAPH-5F52}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\python\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 36923 (\\N{CJK UNIFIED IDEOGRAPH-903B}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\python\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 36753 (\\N{CJK UNIFIED IDEOGRAPH-8F91}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\python\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 20915 (\\N{CJK UNIFIED IDEOGRAPH-51B3}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\python\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 31574 (\\N{CJK UNIFIED IDEOGRAPH-7B56}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\python\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 26641 (\\N{CJK UNIFIED IDEOGRAPH-6811}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\python\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 20845 (\\N{CJK UNIFIED IDEOGRAPH-516D}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\python\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 31181 (\\N{CJK UNIFIED IDEOGRAPH-79CD}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\python\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 27169 (\\N{CJK UNIFIED IDEOGRAPH-6A21}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\python\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 22411 (\\N{CJK UNIFIED IDEOGRAPH-578B}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\python\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 22312 (\\N{CJK UNIFIED IDEOGRAPH-5728}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\python\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 21644 (\\N{CJK UNIFIED IDEOGRAPH-548C}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\python\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 19978 (\\N{CJK UNIFIED IDEOGRAPH-4E0A}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\python\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 30340 (\\N{CJK UNIFIED IDEOGRAPH-7684}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\python\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 20934 (\\N{CJK UNIFIED IDEOGRAPH-51C6}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\python\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 30830 (\\N{CJK UNIFIED IDEOGRAPH-786E}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\python\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 29575 (\\N{CJK UNIFIED IDEOGRAPH-7387}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\python\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 23545 (\\N{CJK UNIFIED IDEOGRAPH-5BF9}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\python\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 27604 (\\N{CJK UNIFIED IDEOGRAPH-6BD4}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 1000x600 with 1 Axes>"
      ],
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAJOCAYAAACqS2TfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8ekN5oAAAACXBIWXMAAA9hAAAPYQGoP6dpAABSFUlEQVR4nO3deVyU5f7/8Tczw6bEpoAruOOGZlJaYeZa0uZWaR21jmZ1jtrpfCtTU9FSw7TVSk/pScujZhq2mCmppWVZrmip6FFTsQQCEVkGZub3hz/mSCCCzs0Ivp6Ph4+Hc829fO7xcuB9X9d93x4Oh8MhAAAAAADgciZ3FwAAAAAAQHVF6AYAAAAAwCCEbgAAAAAADELoBgAAAADAIIRuAAAAAAAMQugGAAAAAMAghG4AAAAAAAxC6AYAAAAAwCCEbgAAAAAADELoBgBUKz/88IMiIyMVGRmpzZs3l7rMoUOHnMscP35ckrRy5UpFRkbqhRdeKHWdN954Q5GRkc7Xx48fV2RkpFauXFlsuW3btumxxx5Tp06d1LZtW916660aP368jh075lzm2Wefde7/Qn+GDBlyWZ+D3W7X8uXL9eCDD6pTp0667rrr1K9fP73//vuyWq3Flu3evbueffbZEsd6oT/z588vtv63336ryMhI3XXXXaXWcv6/yfl/2rZtq1tuuUXPPPOMUlNTK3R8P//8s9q0aeP89ztfUlKShgwZog4dOigmJkYvv/xyiWMGAKCyWNxdAADAWPHx8WW+HxMTo5tvvlnSufB0oaBaZOzYsZe8/crahySZTCatWbNGMTExJZZfvXr1Bbe1ePFi3X777YqOji5zn6XZsmWLRowYoV69emnatGm65ppr9Ouvv2rBggUaOHCgli9frvDwcP3tb3/ToEGDnOu99dZb+vnnnzVnzhxnm5+fn/Pvc+fO1enTpy+436ioKMXGxjpf5+bm6rHHHtOuXbs0ePBgjRgxQp6envr+++81c+ZMffPNN3rzzTfl5eVV5vEsW7as1PZ69eoVe71ixQq1aNFCBw4c0LZt29SxY8dS15s0aZLatGnjfH327Flt27ZN//rXv3T48GEtX768zHqKHDhwQCNHjlRhYWGJ944dO6aHH35Y1157rV599VUdOnRIr7zyijIzMzV16lTncqtXr1ZSUtIF9xEQEKDHHnvM+dpmsykuLq7Yv8ufxcbGKioq6qrfBwCgOEI3AFRzXbp00U033XTB97/77jvn3z08PEoE3gsteynbr6x9SNJ1112ndevWKS4uThZL8R93q1evVqtWrfTLL7+UWM/Pz0/jx4/XJ598Ih8fnwvuszRz585Vu3bt9OqrrzrbOnXqpK5du6pXr17697//rcmTJys8PFzh4eHOZYKDg+Xl5aVrr7221O22a9euQsc/Y8YMbd++Xe+//36xbcbExKhly5b6v//7Py1dulRDhw4t83guVM/5srKylJiYqClTpmjevHlaunTpBUN3s2bNSmzz5ptvltVq1TvvvKODBw+qWbNmF9yX1WrVBx98oNdff13e3t6lLvPOO++oZs2aeuutt+Tl5aWuXbvKx8dHzz//vB577DHnCYPAwMAK9UOHw6E777xTnTp1Kvc6V+s+AADFMb0cAFAtxcbGKjMzU99//32x9n379unIkSPq06dPqeuNHTtWv/76q15++eUK7zMtLU0Oh6NEe2hoqJ577rkSo/FG+OOPP7RixQoNGDCg1NB855136q9//avCwsJcsr9PP/1UhYWF6tKli+6++259+eWXyszMrNA2/P39JZ07IVOWb775RnPmzNGjjz6qp556qtRlNm/erK5duxYbxb/99ttlt9svOsMCAAAjELoBANVSs2bN1Lx5c61Zs6ZY++eff64bbrhBISEhpa7XuXNn3X///Xr//fe1bdu2Cu3z1ltv1Y4dOzRkyBB99NFHxa7jvvfee9WzZ8+KH0gFbdmyRYWFherWrdsFlxk7dqxuu+22i26rsLCwxB+73V5smRUrVqhLly6qXbu2+vbtq4KCAn388celbs9utxfbVmZmptauXav58+erXbt2aty4cZn1REVFaf369Xr88cdlNptLvJ+Xl6cTJ06U2E5wcLD8/Px0+PDhix4zAACuxvRyAEC11adPHy1atKjYFPPVq1df9PrTZ555Rps2bdL48eO1atWqck8zf+KJJ3TmzBl99NFH2rp1qySpTp066tq1qx566CE1adLk8g6oHE6ePClJatCgwWVv6/zrr4vcf//9zmuj9+/fr7179+r111+XdO5a786dO2vZsmV6+OGHS6z70EMPlWgLCAhQjx499PTTT8tkKnss4GKj82fOnJGkUq9XrlmzprKzs8tcHwAAIzDSDQCotv48xXzXrl36/fff1bt3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xxWGvoTzHT58WHFxceratasGDBigcePGad26dRo2bJh2796tL774whl27Ha7vL29dejQIWcQatiwoex2u6Kjo3X69GktXbpUkvTf//5XjRo1UlBQkKKioriuG5KkP/74Q99//73effddvf322/r+++/VoEED3X///bLb7c473deoUUO//fabpP99BxV9JwUFBXHy7yrzn//8RxMnTpTD4VDjxo1Vr149/fjjjxozZozS09OdyzVv3lxeXl767rvvnK/379+viRMn6tZbb9WkSZO0fPlyBQUFKTo6WmvWrJHE91J1VjRqfT673a4tW7bo+PHjOnjwoGrWrKn27dvrt99+U1ZWVrFZWUV9o3nz5jp+/LjWrFmjN954Q/fcc49uv/12RUVFqVu3bpV2PFc7QjcMU95pdiaTSRaLRXl5eSosLCwxjdPPz49fUq5y9CX8mdVq1Zw5c5SZmalx48bpjTfekL+/v5555hl5e3urf//+Wrhwofbt2yfpXPjJz89XWFiYzp49K+ncCICXl5dMJpPuv/9+ffLJJzp69KgCAgL0888/q1WrVurYsaN27Ngh6dxJHVw9srOztW/fPmVlZUmSEhMTdebMGQ0aNEijR49W//791bJlS9WqVUsFBQXO0B0YGKjTp09LUonvoKCgIGf/Q/XicDg0aNAg5/eFJJ0+fVrz5s3Tk08+qRYtWsjLy0uRkZHq2LGjTpw4oX/+85/OEcrg4GC1atXKGaZvvvlm7dmzR4WFhZo8ebL69u2r+Ph4LV68WL1799aPP/4oSUwxr4YcDof69eun9u3bO3+GFbV7eXkpLS1NtWvX1okTJ3TmzBk1a9ZMhYWF2r17t6SSJ2I6d+6sHTt2aPz48fr555/Vr18/ffXVV5ozZ47zJDSMx/9UXLayptk1bdq0zGl2RQHI29vb+UvxnwUGBhKUrhL0JZRXQkKCDh06pJEjR+r2229Xy5YtNW3aNI0dO1Z+fn56+OGHVaNGDc2dO1fSucCckpIiT09P1apVS9K5ke569eppx44d6tGjh6KiovTWW28pICBAp0+fls1mU8eOHZWfn++c9onqy2q16vDhw/r000/1yiuv6KOPPlJSUpJSU1MlSbfccovatWsnPz8/ORwO5/ePxWKRh4eH8zsnKCio1Bk1Rb8we3h4KDc3t/IODJWi6ATLTz/95Owbb775pmrX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"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 3
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
